Three dimensional computer graphics are typically comprised of a polygon mesh including one or more graphical textures which may be applied to the exterior surfaces of the polygon mesh. When rendered by the computer, the polygon mesh and applied graphical textures may appear as a solid three dimensional form. Typically, a user may create a polygon mesh and associated textures using a 3D editor computer application such as MAYA® from AUTODESK®. Once the user has created the polygon mesh and associated textures, the polygon mesh and associated textures may be submitted to a 3D renderer software application, for example, a 3D video game graphics display engine.
A user may also animate a polygon mesh. Typically, a user may specify that a region of a polygon mesh is a unit, for example, if the polygon mesh resembles a human being, a user may specify that the polygon mesh representing a human arm is a single unit. The user may then specify the manner in which polygon mesh units are attached to one another. For example, a user may specify that the polygon mesh unit representing an arm is comprised of a forearm and an upper arm with a joint representing the elbow connecting the forearm and upper arm.
Once the user has created the polygon mesh units and the manifolds between the polygon mesh units, the user may specify a range of motion for the polygon mesh units. For example, the user may specify that the polygon mesh unit representing the forearm begins at a starting point in three dimensional space and then moves towards the polygon mesh unit representing the upper arm, the animation representing a human arm bicep contraction. Such a method for specifying movement in a set of polygon mesh units may be known as mesh deformation.
Because the polygon mesh units do not behave as their physical counterparts in the real world, there may be problems with rendering the result of the user's beginning and end points in the range of motion. For example, a real human arm is comprised of bones and other physical structures surrounded by flesh. When a real human arm contracts, the physical structures within the arm maintain the length of the arm while the real human flesh stretches and contracts where necessary to allow movement. Because a set of polygon mesh units and accompanying graphical textures lack the internal physical structures and elastic flesh of a real human arm, such properties must be modeled using other methods.
For example, a user may add constraints to the polygon mesh units to preserve volume and length. However, such constraints may also increase the number of computations a computer application is required to perform to render the animation in three dimensional spaces. A more computationally efficient method for allowing a user to place volume and length constraints on a three dimensional polygon mesh, deform the polygon mesh, and render the polygon mesh may be useful.